<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style></style>
  </head>
  <body>
    <div>
      <h1>弱类型的问题</h1>
    </div>
    <script>
      //JavaScript弱类型产生的问题
      //=============================
      //运行阶段才能发现问题
      const obj = {};
      //   obj.foo();
      //这行代码会产生隐患,因为obj对象中没有foo方法,需要定时器到时间才能执行
      setTimeout(() => {
        obj.foo();
      }, 100000);
      //=============================
      //求和计算--因为类型不明确,可能导致函数功能发生变化
      function sum(a, b) {
        return a + b;
      }
      console.log(sum(100, 100)); //200
      console.log(sum(100, "100")); //100100

      //=============================
      const obj1 = {};
      //   此处key会被转为布尔值---导致对象索引器错误的用法
      obj1[true] = 100;
      console.log(obj1[true]); //100
      console.log(obj1["true"]); //100
    </script>
  </body>
</html>
